package com.amadeus.spin.devtool.soap.shooter;

import java.util.Stack;

import org.w3c.dom.Node;

/**
 * Interface defining a plugable process, that will be applied to a given
 * request before the actual call to the server.
 */
public interface ProcessInput {
  /**
   * @param previousOutput
   *          XML string returned by the server to the previous request, could
   *          be null.
   * @param input
   *          XML string the shooter is going to send, comes from a file.
   * @param config
   *          configuration node (DOM sub-document)
   * @return String should return XML string to be used as request, potentially
   *         modified by the process.
   * @throws FatalException
   *           stop shooter process (scenario halted).
   */
  String processInput(Stack<String> previousOut, String input, Node config) throws FatalException;
}